package cn.jzq.kotoba.modules.rabbitmq.demo;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * rabbitmq sender
 * @author jzq
 * @date 2018-09-08
 */
public class RabbitSender {

    private final static String QUEUE_NAME = "hello";

    public static void main(String[] args) throws IOException, TimeoutException {
        //建立连接到服务器
        //连接到了本地机器上的中间件，即localhost。
        // 如果需要连接到不同机器上的中间件，那么设定域名或IP地址即可
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();

        // 为了发送消息，需要声明一个发送队列，然后将消息发送到队列
        // 消息的内容是字节数组，允许自定义编码类型
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        String message = "Hello World!";
        channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
        System.out.println(" [x] Sent '" + message + "'");

        // 销毁通道，关闭连接
        channel.close();
        connection.close();
    }
}
